/* 
 * File:   mapIcons.h
 * Author: cow
 *
 * Created on March 1, 2011, 11:28 PM
 */

#ifndef _MAPICONS_H
#define	_MAPICONS_H

//includes-----------------------------
#include <string>
#include <vector>
//cairo----------------------
#include <cairomm/context.h>
#include <cairomm/surface.h>
#include <cairomm/refptr.h>

using namespace std;

//defines------------------------------
#define shipDelim "ship: "
#define planetDelim "planet: "

#define tileWidth 40
#define tileHeight 40

//prototypes---------------------------
class icon;
class iconTable;

//definitions--------------------------
class icon{
public:
    virtual void setImage(string str);
    virtual void draw(Cairo::RefPtr<Cairo::Context> cr, int center[2], double color[3]);
    virtual void draw(Cairo::RefPtr<Cairo::Context> cr, int center[2]);
    virtual void infodraw(Cairo::RefPtr<Cairo::Context> cr, int size[2]);
protected:
    Cairo::RefPtr<Cairo::ImageSurface> image;
    Cairo::RefPtr<Cairo::ImageSurface> infoImage;
private:
};
class iconTable{
public:
    static void intitalize();
    static void draw(int iconId, Cairo::RefPtr<Cairo::Context> cr, int center[2]);
    static void draw(int iconId, Cairo::RefPtr<Cairo::Context> cr, int center[2], double color[3]);
    static int addIcon(icon* icn);
protected:
private:
    static vector<icon*> iconList;
};

#endif	/* _MAPICONS_H */

